package cn.powertime.evaluation.facade;

import cn.powertime.evaluation.entity.DbqNews;
import cn.powertime.evaluation.vo.*;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

public interface PersonalCenterFacade {

    /**
     * 统计关注数及发帖数
     *
     * @return RespFocusCount
     */
    RespFocusCount count();

    /**
     * 个人帖子列表
     *
     * @param vo 分页参数
     * @return Page
     */
    Page<RespPersonalPostingsListVo> personalPostingsList(PageVo vo);

    /**
     * 个人关注列表
     *
     * @param vo 分页参数
     * @return Page
     */
    Page<RespFocusListVo> focusUserList(PageVo vo);

    /**
     * 个人收藏列表
     *
     * @param vo 分页参数
     * @return Page
     */
    Page<RespPersonalPostingsListVo> collects(PageVo vo);

    /**
     * 个人消息列表
     *
     * @param vo 分页参数
     * @return Page
     */
    IPage<DbqNews> messages(PageVo vo);

    /**
     * 个人学习记录
     *
     * @param vo 分页参数
     * @return IPage
     */
    IPage<WebRespCourseRecordListVo> learningRecords(PageVo vo);

    /**
     * 已答试卷
     *
     * @param vo
     * @return Page
     */
    Page<RespAnswerTestPaperVo> answerRecord(ParamPageVo<ReqAnswerTestPaperSearchVo> vo);

    /**
     * 查看试卷
     *
     * @param testPaperId 试卷id
     * @param resultId    结果id
     * @param type        试卷类型，1:课后作业，2：课程刷题，3真题模拟，4：测评练习，5：自查工具，6：智能练习
     * @return RespTopicGroupVo
     */
    RespTopicGroupVo testPaperView(Long testPaperId, Long resultId, Integer type);

    /**
     * 用户收藏习题列表
     *
     * @param vo 分页参数
     * @return Page
     */
    Page<RespAnswerTopicListVo> collectTopicList(PageVo vo);

    /**
     * 用户错题列表
     *
     * @param vo 分页参数
     * @return Page
     */
    Page<RespAnswerTopicListVo> wrongTopicList(PageVo vo);

    /**
     * 个人资料修改
     *
     * @param vo 用户信息vo
     * @return
     */
    boolean updateUser(ReqUserUpdateVo vo);

}
